﻿using System;
using System.Collections.Generic;

namespace Meqs.Entity
{
    [Serializable]
	public class StuCauseEvalHistory
	{
		public StuCauseEvalHistory()
		{
			m_RID = 0;

		}

        public StuCauseEvalHistory(int rid, int schoolYear, int term, int causeId, int status, int managerId)
        {
            m_RID = rid;
            m_SchoolYear = schoolYear;
            m_Term = term;
            m_CauseID = causeId;
            m_Status = status;
            m_ManagerID = managerId;
        }

		#region RID
		
		private int m_RID;
		
		public int RID
		{
			get { return m_RID; }
			set { m_RID = value; }
		}
		
		#endregion
		
		#region SchoolYear
		
		private int? m_SchoolYear;
		
		public int? SchoolYear
		{
			get { return m_SchoolYear; }
			set { m_SchoolYear = value; }
		}
		
		#endregion
		
		#region Term
		
		private int? m_Term;
		
		public int? Term
		{
			get { return m_Term; }
			set { m_Term = value; }
		}
		
		#endregion
		
		#region CauseID
		
		private int? m_CauseID;
		
		public int? CauseID
		{
			get { return m_CauseID; }
			set { m_CauseID = value; }
		}
		
		#endregion
		
		#region Status
		
		private int? m_Status;
		
		public int? Status
		{
			get { return m_Status; }
			set { m_Status = value; }
		}
		
		#endregion
		
		#region ManagerID
		
		private int? m_ManagerID;
		
		public int? ManagerID
		{
			get { return m_ManagerID; }
			set { m_ManagerID = value; }
		}
		
		#endregion

        #region SchoolMark

        private string schoolmark;

        public string SchoolMark
        {
            get { return schoolmark; }
            set { schoolmark = value; }
        }

        #endregion
        #region 关键字
        /// <summary>
        /// 教师评价系统的标识
        /// </summary>
        public const string SystemSiteName = "StuCause";

                #endregion
		#region Rewrite Equals and HashCode
		
		/// <summary>
		/// 
		/// </summary>
		public override bool Equals(object obj)
		{
			if( this == obj ) return true;
			if( ( obj == null ) || ( obj.GetType() != GetType() ) ) return false;
			StuCauseEvalHistory castObj = (StuCauseEvalHistory) obj;
			return ( castObj != null )
 && m_RID == castObj.RID;		}
		
		/// <summary>
		/// 用唯一值实现GetHashCode
		/// </summary>
		public override int GetHashCode()
		{
			int hash = 77;
			hash = hash * 77
 * m_RID.GetHashCode();			return hash;
		}
		
		#endregion
		
		
	}

    [Serializable]
    public class VStuCauseEvalHistory : StuCauseEvalHistory
    {
        public VStuCauseEvalHistory()
        { 
        }

        public VStuCauseEvalHistory(string causeName)
        {
            m_CauseName = causeName;
        }

        public VStuCauseEvalHistory(int rid, int schoolYear, int term, int causeId, int status, int managerId, string causeName)
            : base(rid, schoolYear, term, causeId, status, managerId)
        {
            m_CauseName = causeName;
        }

        #region CuaseName

        private string m_CauseName;

        public string CauseName
        {
            get { return m_CauseName; }
            set { m_CauseName = value; }
        }

        #endregion
    }

    [Serializable]
    public class VStuCauseEvalHistoryTypeItem
    {
        public VStuCauseEvalHistoryTypeItem()
        {
        }

        public VStuCauseEvalHistoryTypeItem(int historyId, int causeId, int typeId, string typeCaption, int itemId, string itemCaption, int itemType, int _operator, int param)
        {
            m_HistoryID = historyId;
            m_CauseID = causeId;
            m_TypeID = typeId;
            m_TypeCaption = typeCaption;
            m_ItemID = itemId;
            m_ItemCaption = itemCaption;
            m_ItemType = itemType;
            m_Operator = _operator;
            m_Param = param;
        }

        #region HistoryID

        private int m_HistoryID;

        public int HistoryID
        {
            get { return m_HistoryID; }
            set { m_HistoryID = value; }
        }

        #endregion

        #region CauseID

        private int m_CauseID;

        public int CauseID
        {
            get { return m_CauseID; }
            set { m_CauseID = value; }
        }

        #endregion

        #region TypeID

        private int m_TypeID;

        public int TypeID
        {
            get { return m_TypeID; }
            set { m_TypeID = value; }
        }

        #endregion

        #region TypeCaption

        private string m_TypeCaption;

        public string TypeCaption
        {
            get { return m_TypeCaption; }
            set { m_TypeCaption = value; }
        }

        #endregion

        #region ItemID

        private int m_ItemID;

        public int ItemID
        {
            get { return m_ItemID; }
            set { m_ItemID = value; }
        }

        #endregion

        #region ItemCaption

        private string m_ItemCaption;

        public string ItemCaption
        {
            get { return m_ItemCaption; }
            set { m_ItemCaption = value; }
        }

        #endregion

        #region ItemType

        private int m_ItemType;

        public int ItemType
        {
            get { return m_ItemType; }
            set { m_ItemType = value; }
        }

        #endregion

        #region Operator

        private int m_Operator;

        public int Operator
        {
            get { return m_Operator; }
            set { m_Operator = value; }
        }

        #endregion

        #region Param

        private int m_Param;

        public int Param
        {
            get { return m_Param; }
            set { m_Param = value; }
        }

        #endregion
    }
}